|
In programming languages, name binding is the association of entities (data and/or code) with identifiers. An identifier bound to an object is said to reference that object. Machine languages have no built-in notion of identifiers, but name-object bindings as a service and notation for the programmer is implemented by programming languages. Binding is intimately connected with scoping, as scope determines which names bind to which objects – at which locations in the program code (lexically) and in which one of the possible execution paths (temporally). Use of an identifier id in a context that establishes a binding for id is called a binding (ordefining) occurrence. In all other occurrences (e.g., in expressions, assignments, and subprogram calls), an identifier stands for what it is bound to; such occurrences are called applied occurrences. ==Binding time== The binding of names before the program is run is called static (also "early"); bindings performed as the program runs are dynamic (also "late" or "virtual"). An example of a static binding is a direct C function call: the function referenced by the identifier cannot change at runtime. But an example of dynamic binding is dynamic dispatch, as in a C++ virtual method call. Since the specific type of a polymorphic object is not known before runtime (in general), the executed function is dynamically bound. Take, for example, the following Java code: List is an interface, so list must refer to a subtype of it. Is it a reference to a LinkedList , an ArrayList , or some other subtype of List ? The actual method referenced by add is not known until runtime. In a language like C, the actual function ''is'' known.抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「Name binding」の詳細全文を読む スポンサード リンク
|